var EmbeddedLangTest = (function () {
	return {
		NumberInfo : (function () {
			return {
				NumberInfoAdd: function (numberInfo, i) {
					numberInfo.Val = numberInfo.Val + i;
					return numberInfo;
				},
				NumberInfoIsPrime: function (numberInfo) {if(numberInfo.Val < 2){
						return false;
					}else{
						for(var EmJs_0 = 2, EmJs_1 = Math.floor(Math.sqrt(numberInfo.Val)) + 1;  EmJs_0 < EmJs_1; EmJs_0++){
							if(numberInfo.Val % EmJs_0 === 0){return false;}
						}
						return true;
					}
				}
			};
		}()),
		Program : (function () {
			return {
				TestAdding: function (candidate) {
					return {
						Val:candidate
					}.do(EmbeddedLangTest.NumberInfo.NumberInfoAdd,5);
				},
				TestForPrime3: function (candidate) {
					return {
						Val:candidate
					}.do(EmbeddedLangTest.NumberInfo.NumberInfoAdd,5);.do(EmbeddedLangTest.NumberInfo.NumberInfoIsPrime);
				},
				TestForPrime2: function (candidate) {if(candidate < 2){
						return false;
					}else{
						for(var EmJs_0 = 2, EmJs_1 = Math.floor(Math.sqrt(candidate)) + 1;  EmJs_0 < EmJs_1; EmJs_0++){
							if(candidate % EmJs_0 === 0){return false;}
						}
						return true;
					}
				},
				TestForPrime1: function (candidate) {if(candidate < 2){
						return false;
					}else{
						var EmJs_0 = { Start : 2, End : Math.floor(Math.sqrt(candidate)) };
						for(var EmJs_1 = EmJs_0.Start; EmJs_1 <= EmJs_0.End; EmJs_1++){
							if(candidate % EmJs_0.Val === 0){
								EmJs_0.ReturnObj = false;
								break;
								
							}else{
								EmJs_0.ReturnObj = true;
							}
						}
						return EmJs_0.ReturnObj;
					}
				}
			};
		}())
	};
}());